package 二叉树题目.对称的二叉树;

public class Solution {
    public boolean isSymmetrical(TreeNode pRoot) {
        if (pRoot == null){
            return true;
        }
        if (pRoot.left == null && pRoot.right == null){
            return true;
        }
        return isSymmetricalChild(pRoot.left,pRoot.right);
    }

    public boolean isSymmetricalChild(TreeNode node1,TreeNode node2){
        if (node1 == null && node2 == null){
            return true;
        }
        if (node1 == null || node2 == null){
            return false;
        }
        // 此处不能直接相等，因为其他节点可能不同
        if (node1.val != node2.val){
            return false;
        }
        return isSymmetricalChild(node1.right,node2.left) && isSymmetricalChild(node1.left,node2.right);
    }
}
